package syc;

public class Store extends Thread{
    static int count = 0;//没加static就标识这个是可以重复使用的不是唯一的，加了以后就是静态了这个变量然后实现共享了
    //因为是一个类可能会多次被新建
    @Override
    public void run() {
        while (true){//线程进入这里
            //如果放while外面就被一个线程执行完了
            synchronized (/*this*/Store.class/*当前类的字节码对象是唯一的*/){//()里面是可以放任意的对象甚至是obj，但是我们这个括号里面一定要放一个唯一的对象，这样才是唯一一把锁，不然就是很多把不同的锁
                if (count<50){
                    try {
                        Thread.sleep(50);//窗口进入睡眠等待执行，然后陆续执行下面代码
                    } catch (InterruptedException e) {
                        throw new RuntimeException(e);
                    }//线程执行的时候是具有随机性的，有可能1走到这里还没执行，2也来了还跟着3
                    count++;//所以这里出现重复和超出
                    System.out.println(getName()+"正在卖票"+count);
                }else {
                    break;
                }
            }
        }
    }
}
